#ifndef ARBOLDECISION_H_
#define ARBOLDECISION_H_

#include "CalculadorGanacias.h"
#include "string"
#include <iostream>

using namespace std;

class ListaPrincipal;
class NodoArbol;

class ArbolDecision {

private:
	NodoArbol* raiz;
	CalculadorGanacias* calculador;
	ListaPrincipal* matrizInformacion;
public:

	ArbolDecision(ListaPrincipal* matrizInformacion);
	virtual ~ArbolDecision();

	char predecirAutor(string parrafo);


private:

	NodoArbol* evaluarSubArbol(Lista<int> *idParrafos,int profundidad);
	Lista<int>* obtenerIdParrafos(Lista<int> *idParrafos,string palabra = "", int estado = -1);
	string definirAutor(Lista<int> *idParrafos);
	bool seguirAvanzando(Lista<int> *idParrafos,int produnfidad);
	Lista<int>* getTodosLosParrafos();

	bool existeParrafo(int id, Lista<int> *idParrafos);
};

#endif /* ARBOLDECISION_H_ */
